import Vue from "vue";
import VueRouter from "vue-router";
Vue.use(VueRouter)

import routes from "./routes"
// 方法增强
function enhance(source,type){
// 把方法存起来
const origin=source.prototype[type]
// 把方法进行增强
source.prototype[type]=function(location,okCallBack,errorCallBack){
    if(okCallBack||errorCallBack){
        origin.call(this,location,okCallBack,errorCallBack)
    }else{
        origin.call(this,location).catch(()=>{})
    }
  }
}
// 调用增强方法
enhance(VueRouter,"push")
// 调用增强方法
enhance(VueRouter,"replace")

export default new VueRouter({
    mode:"history",
    routes,
    scrollBehavior (to, from, savedPosition) {  //滚动条行为
        // to : 即将要进入的路由对象
        // from : 现在要离开的路由对象
        // savedPosition:  保存的滚动条的位置【通过浏览器前进后退才会纪录位置】
        // console.log(to)
        // console.log(from)
        // console.log(savedPosition)  //  null

        if(savedPosition){
            return savedPosition;  //通过浏览器前进后退才会纪录位置，返回位置
        }else{
            return {x:0,y:0};  //正常编程式路由导航/ router-link  直接回到最顶部
        }

    }
    
})